_require local "../../../../basis.smi"
(* _require local "../../../../ml-yacc-lib.smi" *)
_require "../../../data/symbols/main/Loc.smi"
_require local "../../../extensions/debug/main/Bug.smi"

_require local "../../../extensions/usererror/main/UserError.ppg.smi"
_require local "../../../data/control/main/Control.smi"
_require local "./interface.grm.smi"
_require local "./interface.lex.smi"
_require local "./ParserError.ppg.smi"

_require "../../../compilerIRs/absyn/main/AbsynInterface.ppg.smi"

structure InterfaceParser =
struct
  type source = {read : int -> string, source : Loc.source}
  type input (= {})
  val setup : source -> input
  val parse : input -> AbsynInterface.itop
end
